why extra_data is involved in this path.
name = mkshort(short_h, name);
#if NEW_STRINGS
// This is sooooo tacky.
- wpt->extra_data = static_cast<void*>(&name);
+ // Actually, it's not just tacky. I can't figure out what this code
+ // was trying to do, but it's wrong and it breaks things.
+ // robertl 2013-12-30.
+ // wpt->extra_data = static_cast<void*>(&name);
#else
wpt->extra_data = (void*)name;
#endif
int i, ct = waypt_count(), serial = 0;
htable_t* htable, *bh;
unsigned long last_crc;
- char ssid[32 + 5 + 1];
htable = (htable_t*) xmalloc(ct * sizeof *htable);
bh = htable;
#if NEW_STRINGS
bh->wpt->shortname += QString("/%1").arg(++serial);
#else
+ char ssid[32 + 5 + 1];
snprintf(ssid, sizeof ssid, "%s/%d", CSTRc(bh->wpt->shortname), ++serial);
xfree(bh->wpt->shortname);
bh->wpt->shortname = xstrdup(ssid);